#ifndef _DOT_SDK_API_H
#define _DOT_SDK_API_H


#include <stdio.h>
#include <string.h>
#include <sys/stat.h>
#include <string.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h> 
#include <unistd.h> 
#include <fcntl.h>
#include <time.h>
#include <sys/types.h>          
#include <sys/socket.h>
#include <net/if.h>
#include <sys/ioctl.h>
#include <sys/time.h>

#include "include/dot_define.h"

#define  SDK_CONFIG_FILE_PATH "/config"
#define  SDK_LOG_FILE_PATH "/tmp"

#define OUTPUT_LOG(format,...) print_log(__FILE__,__FUNCTION__,__LINE__, format, ## __VA_ARGS__)
void print_log(const char* file, const char* fun, int line, const char* format,...);

enum API_INIT
{
	NOT_INIT = 0, //未初始化
	INIT_OK = 1,
};

typedef enum {
    YD_PRODUCT_MODEL_B1,
    YD_PRODUCT_MODEL_B5,
    YD_PRODUCT_MODEL_W5,
    YD_PRODUCT_MODEL_B7,
    YD_PRODUCT_MODEL_LAST,
}YD_PRODUCT_MODEL_TYPE_E;

YD_PRODUCT_MODEL_TYPE_E DOTGetYDProductModel(void);
void DOTSetConfigFailParam(int play);
int DOTGetConfigFailParam(void);
void DOTSetWifiConfigRun(char config);
char DOTGetWifiConfigRun(void);
int64_t getNowMs(void);
int DOTGetSDKStatus(void);
int DOTStopSDK(void);
void DOTGetMacAddress(char *mac);	
int GetConfigWifiQrcodeStatus();
void DOTStartAlarm(DoT_AlarmType_en type, unsigned long long event_time);
void DOTStopAlarm(DoT_AlarmType_en type);
void DOTStopEveryAlarm(void);
int DOTStartBind(int mode);
int DOTStopBind();
int Doorbell_video_set_HD(int hd);
int Doorbell_video_get_HD(void);
void OnMediaData(int pagetype, int sync1, unsigned char* data, unsigned int size, unsigned int timestamp, unsigned long long utcms);
int DotSdkInit();

#endif
